<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of telefono
 *
 * @author Agustin
 */
require_once 'persistenciaTelefono.php';

class Telefono {

    var $id;
    var $numero;

    public function __construct($datos) {
        if (!is_null($datos)) {
            $this->id = $datos[0];
            $this->numero = $datos[1];
        }
    }

    public function crearTelefono($numero) {
        try {
            $pT = PersistenciaTelefono::getInstance();
            $pT->crearTelefono($numero);
            return 'Agregado con éxito';
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerTelefonos($numero) {
        try {
            $pT = PersistenciaTelefono::getInstance();
            return $pT->traerTelefonos($numero);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traerTelefonosLugares($idLugar) {
        try {
            $pT = PersistenciaTelefono::getInstance();
            $telefonos = $pT->traerTelefonos($idLugar);
            return $telefonos;
        } catch (Exception $ex) {
            echo $exc->getTraceAsString();
        }
    }

    public function eliminarTelCliente($idtel) {
        try {
            $pT = PersistenciaTelefono::getInstance();
            $pT->eliminarTelefonoCliente($idtel);
            return 'Elminado con éxito';
            return $telefonos;
        } catch (Exception $ex) {
            echo $exc->getTraceAsString();
        }
    }

    public function agregarTelCliente($idcliente, $numero) {
        if ($this->checkTel($numero)) {
            try {
                $pT = PersistenciaTelefono::getInstance();
                $datos = array($numero, $idcliente);
                $idtel = $pT->crearTelefono($datos[0]);
                $datosnew = Array($idtel, $datos[1]);
                $pT->crearTelefonoCliente($datosnew);
                return 'Agregado con Éxito';
            } catch (Exception $exc) {
                echo $exc->getTraceAsString();
            }
        } else {
            return 'El número contiene caracteres inválidos o está vacío';
        }
    }

    public function agregarTelLugar($idlugar, $numero) {
        if ($this->checkTel($numero)) {
            try {
                $pT = PersistenciaTelefono::getInstance();
                $datos = array($numero, $idlugar);
                $idtel = $pT->crearTelefono($datos[0]);
                $datosnew = Array($idtel, $datos[1]);
                $pT->crearTelefonoLugar($datosnew);
                return 'Agregado con Éxito';
            } catch (Exception $exc) {
                echo $exc->getTraceAsString();
            }
        } else {
            return 'El número contiene caracteres inválidos o está vacío';
        }
    }

    public function actualizarTelefono($idtel, $numero) {
        if ($this->checkTel($numero)) {
            try {
                $pT = PersistenciaTelefono::getInstance();
                $datos = array($idtel, $numero);
                $pT->actualizarTelefono($datos);
                return 'Modificado con éxito';
            } catch (Exception $exc) {
                echo $exc->getTraceAsString();
            }
        } else {
            return 'El número contiene caracteres inválidos o está vacío';
        }
    }

    public function eliminarTelLugar($idtel) {
        try {
            $pT = PersistenciaTelefono::getInstance();
            $pT->eliminarTelefonoLugar($idtel);
            return 'Elminado con éxito';
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function checkTel($numero) {
        if ($numero != '') {
            if (is_numeric($numero)) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
     public function __toString() {
        return $this->numero;
    }

}

?>
